<template>
  <d2-container>
    <template slot="header">指标体系</template>
    <el-table :data="tableData" style="width: 100%; margin-bottom: 20px" row-key="code" border default-expand-all
      :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
      <el-table-column prop="code" label="编号" width="100" align="center" />
      <el-table-column prop="name" label="名称" width="180" />
      <el-table-column prop="description" label="描述" width="600" />
      <el-table-column prop="max_score" label="满分" width="100" sortable />
      <el-table-column prop="standard" label="评分标准" />
      <el-table-column prop="weight" label="权重" sortable>
        <!-- 使用作用域插槽自定义操作列 -->
        <template slot-scope="scope">
          <!-- 在这里插入表单或其他自定义内容 -->
          <el-form :inline="true" :model="scope.row" label-width="80px">
            <el-form-item>
              <el-input-number v-model="scope.row.weight" :min="0" :max="2" :step="0.2" :size="small"
                @change="change_number(scope.row)"></el-input-number>
            </el-form-item>
          </el-form>
        </template>
      </el-table-column>
    </el-table>
  </d2-container>
</template>

<script>
export default {
  name: 'indicator',
  data() {
    return {
      tableData: [
        {
          code: '1',
          name: '产品风险因素',
          description: '企业生产产品的质量安全风险程度',
          max_score: 30,
          standard: '定档确定：属于工业生产许可和强制性认证的产品，为30分；属于重点关注的产品，为20分。',
          weight: 1
        },
        {
          code: '2',
          name: '企业质量信用风险因素',
          description: '',
          max_score: 50,
          standard: '',
          weight: 1,
          children: [
            {
              code: '21',
              name: '监督抽查',
              description: '各级监督抽查和外地通报的不合格产品信息',
              max_score: "上不封顶",
              standard: '监督抽查结果为“不合格”的，出现1次加10分；结果为“严重不合格”的，出现1次加15分；',
              weight: 1
            },
            {
              code: '22',
              name: '现场检查',
              description: '工业产品生产许可企业日常检查情况；强制性认证产品生产企业认证“双随机、一公开”检查情况',
              max_score: "上不封顶",
              standard: '每出现一个“不符合”项加3分，每出现一个“否决项”加5分',
              weight: 1
            },
            {
              code: '23',
              name: '行政处罚',
              description: '涉及产品质量行政处罚情况',
              max_score: "上不封顶",
              standard: '因产品质量问题被行政处罚的，每增加1起加9分。',
              weight: 1
            },
            {
              code: '24',
              name: '举报查实情况',
              description: '涉及产品质量举报情况',
              max_score: "上不封顶",
              standard: '举报经查实存在质量问题的，每增加1起加9分。',
              weight: 1
            },
            {
              code: '25',
              name: '通报召回',
              description: '国内外通报召回',
              max_score: "上不封顶",
              standard: '通报召回每出现1次加5分',
              weight: 1
            },
            {
              code: '26',
              name: '网络舆情',
              description: '网上负面舆情报道情况',
              max_score: 4,
              standard: '负面舆情每出现1次加4分',
              weight: 1
            },
            {
              code: '27',
              name: '风险监测',
              description: '各级风险监测通报情况',
              max_score: "上不封顶",
              standard: '各级风险监测通报情况折算',
              weight: 1
            }
          ]
        },
        {
          code: '3',
          name: '企业通用信用风险因素',
          description: '企业通用型信用风险分类结果',
          max_score: 20,
          standard: '根据厦门市企业信用风险分类结果折算计入',
          weight: 1
        }
      ]
    }
  },
  methods: {
    async change_number(row) {
      await this.$store.dispatch('d2admin/db/set', {
        dbName: 'sys',
        path: 'indicator-' + row.code,
        // defaultValue: JSON.parse(JSON.stringify(this.defaultLayout)),
        user: true
      }, { root: true })
      this.$message({
        message: '指标' + row.name + "的权重已修改为" + row.weight,
        type: 'success'
      });

    },
    handleUpdate(row) {
      // 企业风险评分之和＜30分的，为A级；30分≤风险评分之和＜45分的，为B级；45分≤风险评分之和＜60分的，为C级；风险评分之和≥60分的，为D级。
      console.log('Update data:', row)
    }
  }
}
</script>
